Deadlock 意思是系統中存在一組 process 陷入互相等待對方所擁有的資源的情況,造成所有的 process 無法往下執行,使得 CPU 利用度大幅降低。
Deadlock 發生須符合以下四項充要條件
Mutual exclusion:某些資源在同一個時間點最多只能被一個 process 使用
old and wait:某 process 持有部分資源,並等待其他 process 正在持有的資源
No preemption:process 不可以任意強奪其他 process 所持有的資源
Circular waiting:系統中存在一組 processes P=P0,P1,…,Pn,其中 P0 等待 P1 所持有的資源 ... Pn 等待 P0 所持有的資源,形成循環式等待。